---
title: DMA 固件编程
sidebar_position: 0
---
## 概述
DMA 是指“直接存储器访问”(Direct Memory Access),这是一种允许软件和硬件之间直接进行数据交换的技术。插在主板上跨过主板直接访问内存。

固件是处理器中的软件代码，它直接在硬件级上控制和协调各种操作。在我们的 DMA 板子项目中，固件的编写是至关重要的一步，因为它决定了板子的性能和功能。



## 单人固件原理
一个开源的固件，人们把这个固件的配置空间以及声卡、网卡、显卡改到了这个开源的固件里，让它伪装成一个网卡、声卡或显卡。

所有的单人固件，都是开源的，只是特征码不一样。

## 单人固件的软件和用途
TeleScan PE 和 Arbor 用于采集

采集某个硬件的 ID，可以理解为采集你某个硬件的特征码。

比如说想伪装成网卡，就要采集一个真正的网卡。


Vivado 对你的开源固件进行修改。其实就是修改固件的 id ，改完之后将采集后的固件烧录到板子里，板子就变成了你采集的那个硬件。

采集网卡，就会变成网卡；采集声卡，就会变成声卡。

## 教程
使用设备，网卡（8111，7260）

首先要准备的东西
* Telescan
* Arbor
* Vivado 2023 及更新版本
* 转换 COE 文件的网站：telescan to coe 在线转换 （veen.eu.org）
* 开源固件